Intelligent audio mixing among media playback and at least one other non-playback application

ABSTRACT

In operation of an electronics device, audio based on asynchronous events, such as game playing, is intelligently combined with audio output nominally generated in a predictive manner, such as resulting from media playback. For example, an overall audio output signal for the electronic device may be generated such that, for at least one of audio channels corresponding to predictive manner processing, the generated audio output for that channel included into the overall audio output signal is based at least in part on configuration information associated with a processed audio output signal for at least one of the audio channels corresponding to asynchronous events based processing. Thus, for example, the game audio processing may control how audio effects from the game are combined with audio effects from media playback.

BACKGROUND

Portable electronic devices for media playback have been popular and are becoming ever more popular. For example, a very popular portable media player is the line of iPod® media players from Apple Computer, Inc. of Cupertino, Calif. In addition to media playback, the iPod® media players also provide game playing capabilities.

SUMMARY

The inventors have realized that it is desirable to create an integrated media playback and game playing experience.

A method to operate an electronics device includes intelligently combining audio based on asynchronous events, such as game playing, with audio output nominally generated in a predictive manner, such as resulting from media playback. For example, an overall audio output signal for the electronic device may be generated such that, for at least one of audio channels corresponding to predictive manner processing, the generated audio output for that channel included into the overall audio output signal is based at least in part on configuration information associated with a processed audio output signal for at least one of the audio channels corresponding to asynchronous events based processing. Thus, for example, the game audio processing may control how audio effects from the game are combined with audio effects from media playback.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is an architecture diagram broadly illustrating an example of processing to operate an electronics device so as to intelligently combine audio based on asynchronous events, such as game playing, with audio output nominally generated in a predictive manner, such as resulting from media playback.

FIG. 2 is an architecture diagram similar to FIG. 1, but the FIG. 2 diagram shows some greater detail of how the game audio processing may control how audio effects from the game are combined with audio effects from media playback.

FIG. 3 is a flowchart providing an overview of the processing described with reference to the FIGS. 1 and 2 architecture diagrams.

FIG. 4 is a flowchart that illustrates more detail on processing, within an arbitrary channel “X,” of loop and chain specifications of the sound effects.

DETAILED DESCRIPTION

In accordance with an aspect, a method is provided to operate an electronics device so as to intelligently combine audio based on asynchronous events, such as game playing, with audio output nominally generated in a predictive manner, such as resulting from media playback. For example, an overall audio output signal for the electronic device may be generated such that, for at least one of audio channels corresponding to predictive manner processing, the generated audio output for that channel included into the overall audio output signal is based at least in part on configuration information associated with a processed audio output signal for at least one of the audio channels corresponding to asynchronous events based processing. Thus, for example, the game audio processing may control how audio effects from the game are combined with audio effects from media playback.

FIG. 1 is an architecture diagram broadly illustrating an example of this processing. As shown in FIG. 1, game playing processing 101 and media playback processing 103 are occurring, at least when considered at a macroscopic level, in parallel. For example, the media playback processing 103 may include playback of songs, such as is a commonly-known function of an iPod media player. In general, the media playback nominally occurs in a predictive manner and, while user interaction may affect the media playback audio (e.g., by a user activating a “fast forward” or other user interface item), the media playback nominally occurs in a predictive manner.

The game playing processing 101 may include processing of a game, typically including both video and audio output, in response to user input via user interface functionality of the portable media player. Meanwhile the game application 116 may operate to, among other things, provide game video to a display 112 of the portable media player 110. The game application 116 is an example of non-media-playback processing. That is, the game video provided to the display 112 of the portable media player 110 is substantially responsive to game-playing actions of a user of the portable media player 110. In this respect, the game video is not nominally generated in a predictive manner, as is the case with media playback processing.

Sound effects of the game playing processing 101 may be defined by a combination of “data” and “specification” portions, such as is denoted by reference numerals 104(1) to 104(4) in FIG. 1. The “data” portion may be, for example, a pointer to a buffer or audio data, typically uncompressed data representing information of an audio signal. The specification may include information that characterizes the source audio data, such as the data format and amount. In one example, the sound effect data is processed to match the audio format for media playback.

The specification may further include desired output parameters for the sound effect, such as volume, pitch and left/right pan. In some examples, the desired output parameters may be modified manually (i.e., by a user via a user interface) or programmatically.

Furthermore, in some examples, a sound effect may be specified according to a loop parameter, which may specify a number of times to repeat the sound effect. For example, a loop parameter may specify one, N times, or forever.

In addition, a sound effect definition may be chained to one or more other sound effects definitions, with a specified pause between sound effects. A sequence of sound effects may be pre-constructed and substantially without application intervention after configuration. For example, one useful application of chained sound effects is to build phrases of speech.

Turning again to FIG. 1, each sound effect undergoes channel processing 102, according to the specified desired output parameters for that sound effect, in a separate channel. In FIG. 1, the sound effect 104(1) undergoes processing in channel 1, and so on. The number of available channels may be configured at run-time. A sound effects mixer 106 takes the processed data of each channel and generates a mixed sound effect signal 107. A combiner 108 combines the mixed sound effect signal 107 with the output of the music channel, generated as a result of processing a music signal 105 as part of normal media playback processing. The output of the combiner 108 is an output audio signal 110 that is a result of processing the sound effects definitions 104, as a result of game playing processing 101, and of processing the music signal 105, as part of normal media playback processing.

By combining game playing and media playback experiences, the user experience is synergistically increased.

FIG. 2 is similar to FIG. 1 (with like reference numerals indicating like structure), but FIG. 2 shows some greater detail. In FIG. 2, the sound effects 104 are shown as including indications of sound effects raw data 202 and indications of sound effects configuration data 204. Furthermore, as also illustrated in FIG. 2, a portion of the output of the sound effect mixer 106 is shown as being provided to a fader 206. In this example, then, the game audio processing may control how audio effects from the game are combined with audio effects from media playback, by a fader 206 causing the music signal to be faded as “commanded” by a portion of the output of the sound effect mixer 106. The thus-faded music signal combine by a combine block 208 with the output of the sound effects mixer 106 to generate the output audio signal 110.

FIG. 3 is a flowchart providing an overview of the processing described with reference to the FIGS. 1 and 2 architecture diagrams. At step 302, for each channel, unprocessed sound data is retrieved. At step 304, the sound data for each channel is processed according to processing elements for the sound. While the FIGS. 1 and 2 architecture diagrams did not go into this level of detail, in some examples, separate processing elements are used in each channel (the channel processing 102) to, for example, perform digital rights management (DRM), decode the input signal, perform time scale modification (TSM), sample rate conversion (SRC), equalization (EQ) and effects processing (FX).

At step 306, the processed sound effects for all channels are combined. At step 308, the combined sound effects signal and media playback signal are combined, with the media playback signal being faded as appropriate based on mixing data associated with the sound effects.

FIG. 4 is another flowchart, and the FIG. 4 flowchart provides more detail on processing, within an arbitrary channel “X,” of loop and chain specifications of the sound effects. As mentioned above, a loop parameter may specify a number of times to repeat a sound effect and, also, a sound effect definition may be chained to one or more other sound effects definitions, with a specified pause between sound effects. At step 402, the unprocessed signal data for the channel “X” is retrieved. At step 404, the signal data is processed according to parameters for the channel “X” effect. At step 405, the processed sound effect signal is provided for combining with other processed sound effect signals.

Reference numerals 406, 408 and 410 indicate different processing paths. Path 406 is taken when a sound effect has an associated loop specification. At step 412, the loop count is incremented. At step 414, it is determined if the looped specification processing is finished. If so, then processing for the sound effect ends. Otherwise, processing returns to step 405.

Path 410 is taken when the sound effect has an associated chain specification. At step 416, the next specification in the chain is found, and then processing returns to step 402 to begin processing for the signal data of the next specification.

Path 408 is taken when the sound effect has neither an associated loop specification or an associated chain specification, and processing for the sound effect ends.

In some examples, it is determined to cause not include in the output audio signal 110 audio corresponding to one or more sound effects, even though the audio corresponding those one or more sound effects would nominally be included in the output audio signal 110. For example, this may occur when there are more sound effect descriptors than can be played (or desirably played) simultaneously, based on processing or other capabilities. Channels are fixed, small resources—they may be considered to be available slots that are always present. The number of sound effect descriptors that can be created is not limited by the number of available channels. However, for a sound effect to be included in the output audio signal, that sound effect is attached to a channel. The number of channels can change at runtime but, typically, at least the maximum number of available channels is predetermined (e.g., at compile time).

The determination of which sounds effects to omit may be based on priorities. As another example, a least recently used (LRU) determination may be applied. In this way, for example, the sound effect started the longest ago is the first sound effect omitted based on a request for a new sound effect.

In accordance with one example, then, the following processing may be applied.

-   -   N sound effects are included in the output audio signal 110         (where N is 0 to max sounds allowed)     -   A new sound effect is requested to be included in the output         audio signal 110. To be included in the output audio signal 110,         the sound effect is to be associated with a channel. There are         two cases.         -   i. If N equals the maximum number of sounds allowed to be             included in the output audio signal 110, then the sound             effect started the longest ago is caused to be omitted, and             processing of the newly-requested sound effect is started on             the same channel.         -   ii. Otherwise, if N<the maximum number of sounds allowed to             be included in the output audio signal 110, then the             newly-requested sound effect is processed on the next             available channel

In one example, the sound effects mixer inquires of each channel 102 whether that channel is active. For example, this inquiry may occur at regular intervals. If a channel is determined to be not active (e.g., for some number of consecutive inquiries, the channel report being not active), then the channel may be made available to a newly-requested sound effect.

We have described how game audio processing may control how audio effects from non-media-playback processing (such as, for example, a game) are combined with audio effects from media playback, such that, for example, an audio experience pleasurable to the user may be provided.

The following applications are incorporated herein by reference in their entirety: U.S. patent application Ser. No. ______, filed concurrently herewith, entitled “TECHNIQUES FOR INTERACTIVE INPUT TO PORTABLE ELECTRONIC DEVICES,” (Atty Docket No. APL1P486/P4322US1); U.S. patent application Ser. No. ______, filed concurrently herewith, entitled “ALLOWING MEDIA AND GAMING ENVIRONMENTS TO EFFECTIVELY INTERACT AND/OR AFFECT EACH OTHER,” (Atty Docket No. APL1P487/P4323US1); and U.S. patent application Ser. No. 11/144,541, filed Jun. 3, 2005, entitled “TECHNIQUES FOR PRESENTING SOUND EFFECTS ON A PORTABLE MEDIA PLAYER,”. 

1. A method of operating an electronic device to provide audio support for a plurality of processes operating on the electronic device, the processes including a process that nominally causes generation of audio output based on asynchronous events and a process that nominally causes generation of audio output in a predictive manner, the method comprising: processing each of a plurality of audio channels to generate a processed audio output signal for that audio channel, each audio channel corresponding to one of the asynchronous events processing or one of the predictive manner processing; and combining the processed audio output signals to generate an overall audio output signal for the electronic device such that, for at least one of the audio channels corresponding to predictive manner processing, the generated audio output for that channel included into the overall audio output signal is based at least in part on configuration information associated with the processed audio output signal for the audio channel corresponding to asynchronous events based processing.
 2. The method of claim 1, wherein: the process that nominally causes generation of audio output based on asynchronous events is a game process.
 3. The method of claim 1, wherein: the process that nominally causes generation of audio output in a predictive manner is a media playback process.
 4. The method of claim 1, wherein: the process that nominally causes generation of audio output based on asynchronous events is a game process; and the process that nominally causes generation of audio output in a predictive manner is a media playback process.
 5. The method of claim 1, wherein: the processed audio output signal for the audio channel corresponding to the asynchronous events based processing includes synchronization information to synchronize the processed audio corresponding to the asynchronous events processing with the audio corresponding to the predictive manner processing.
 6. The method of claim 5, wherein: combining the processed audio output signals to generate an overall audio output signal for the electronic device includes synchronizing the processed audio corresponding to the asynchronous events processing with the audio corresponding to the predictive manner processing, based on the synchronization information.
 7. The method of claim 6, wherein: synchronizing the processed audio corresponding to the asynchronous events processing with the audio corresponding to the predictive manner processing includes fading the audio corresponding to the predictive manner processing based at least in part on the synchronization information.
 8. The method of claim 7, wherein: the synchronization information includes a specification of fade duration and final fade level.
 9. The method of claim 1, wherein: processing each of a plurality of audio channels for the asynchronous events processing to generate a processed audio output signal for that audio channel includes processing a corresponding sound effect for that channel.
 10. The method of claim 9, further comprising: determining which of a plurality of requested sound effects to be allowed to correspond to one of the plurality of audio channels for the asynchronous events processing.
 11. The method of claim 10, wherein: the determining step is according to least recently used processing.
 12. A computer program product to operate an electronic device to provide audio support for a plurality of processes operating on the electronic device, the processes including a process that nominally causes generation of audio output based on asynchronous events and a process that nominally causes generation of audio output in a predictive manner, the computer program product comprising at least one computer-readable medium having computer program instructions stored therein which are operable to cause at least one computing device to: process each of a plurality of audio channels to generate a processed audio output signal for that audio channel, each audio channel corresponding to one of the asynchronous events processing or one of the predictive manner processing; and combine the processed audio output signals to generate an overall audio output signal for the electronic device such that, for at least one of the audio channels corresponding to predictive manner processing, the generated audio output for that channel included into the overall audio output signal is based at least in part on configuration information associated with the processed audio output signal for the audio channel corresponding to asynchronous events based processing.
 13. The computer program product of claim 12, wherein: the process that nominally causes generation of audio output based on asynchronous events is a game process.
 14. The computer program product of claim 12, wherein: the process that nominally causes generation of audio output in a predictive manner is a media playback process.
 15. The computer program product of claim 12, wherein: the process that nominally causes generation of audio output based on asynchronous events is a game process; and the process that nominally causes generation of audio output in a predictive manner is a media playback process.
 16. The computer program product of claim 12, wherein: the processed audio output signal for the audio channel corresponding to the asynchronous events based processing includes synchronization information to synchronize the processed audio corresponding to the asynchronous events processing with the audio corresponding to the predictive manner processing.
 17. The computer program product of claim 16, wherein: the computer program instructions which are operable to cause the at least one computing device to combine the processed audio output signals to generate an overall audio output signal for the electronic device includes computer program instructions which are operable to cause the at least one computing device to synchronize the processed audio corresponding to the asynchronous events processing with the audio corresponding to the predictive manner processing, based on the synchronization information.
 18. The computer program product of claim 17, wherein: the computer program instructions which are operable to cause the at least one computing device to synchronize the processed audio corresponding to the asynchronous events processing with the audio corresponding to the predictive manner processing includes computer program instructions which are operable to cause the at least one computing device to fade the audio corresponding to the predictive manner processing based at least in part on the synchronization information.
 19. The computer program product of claim 18, wherein: the synchronization information includes a specification of fade duration and final fade level.
 20. The computer program product of claim 12, wherein: the computer program instructions which are operable to cause the at least one computing device to process each of a plurality of audio channels for the asynchronous events processing to generate a processed audio output signal for that audio channel includes computer program instructions which are operable to cause the last least one computing device to process a corresponding sound effect for that channel.
 21. The computer program product of claim 20, further comprising: computer program instructions which are operable to cause the at least one computing device to determine which of a plurality of requested sound effects to be allowed to correspond to one of the plurality of audio channels for the asynchronous events processing.
 22. The computer program product of claim 21, wherein: computer program instructions which are operable to cause the at least one computing device to determine which of a plurality of requested sound effects to be allowed to correspond to one of the plurality of audio channels for the asynchronous events processing include computer program instructions to determine which of a plurality of requested sound effects to be allowed to correspond to one of the plurality of audio channels for the asynchronous events processing according to least recently used processing.
 23. An electronic device configurable to provide audio support for a plurality of processes operating on the electronic device, the processes including a process that nominally causes generation of audio output based on asynchronous events and a process that nominally causes generation of audio output in a predictive manner, the electronic device comprising: audio output circuitry; processing circuitry configured to process each of a plurality of audio channels to generate a processed audio output signal for that audio channel, each audio channel corresponding to one of the asynchronous events processing or one of the predictive manner processing, wherein the processing circuitry is further configured to combine the processed audio output signals to generate an overall audio output signal for the electronic device such that, for at least one of the audio channels corresponding to predictive manner processing, the generated audio output for that channel included into the overall audio output signal is based at least in part on configuration information associated with the processed audio output signal for the audio channel corresponding to asynchronous events based processing; and circuitry to couple the overall audio output signal from the processing circuitry to the audio output circuitry.
 24. The electronic device of claim 23, wherein: the process that nominally causes generation of audio output based on asynchronous events is a game process.
 25. The electronic device of claim 23, wherein: the process that nominally causes generation of audio output in a predictive manner is a media playback process.
 26. The electronic device of claim 23, wherein: the process that nominally causes generation of audio output based on asynchronous events is a game process; and the process that nominally causes generation of audio output in a predictive manner is a media playback process.
 27. The electronic device of claim 23, wherein: the processed audio output signal for the audio channel corresponding to the asynchronous events based processing includes synchronization information to synchronize the processed audio corresponding to the asynchronous events processing with the audio corresponding to the predictive manner processing.
 28. The electronic device of claim 27, wherein: the processing circuitry being configured to combine the processed audio output signals to generate an overall audio output signal for the electronic device includes the processing circuitry being configured to cause the at least one computing device to synchronize the processed audio corresponding to the asynchronous events processing with the audio corresponding to the predictive manner processing, based on the synchronization information.
 29. The electronic device of claim 28, wherein: the processing circuitry being configured to cause the at least one computing device to synchronize the processed audio corresponding to the asynchronous events processing with the audio corresponding to the predictive manner processing includes the processing circuitry being configured to cause the audio corresponding to the predictive manner processing to fade based at least in part on the synchronization information.
 30. The electronic device of claim 29, wherein: the synchronization information includes a specification of fade duration and final fade level.
 31. The electronic device of claim 23, wherein: the processing circuitry being configured to cause the at least one computing device to process each of a plurality of audio channels for the asynchronous events processing to generate a processed audio output signal for that audio channel includes the processing circuitry being configured to process a corresponding sound effect for that channel.
 32. The electronic device of claim 31, wherein: the processing circuitry is further configured to cause the at least one computing device to determine which of a plurality of requested sound effects to be allowed to correspond to one of the plurality of audio channels for the asynchronous events processing.
 33. The electronic device of claim 32, wherein: the processing circuitry being configured to cause the at least one computing device to determine which of a plurality of requested sound effects to be allowed to correspond to one of the plurality of audio channels for the asynchronous events processing includes the processing circuitry being configured to determine which of a plurality of requested sound effects to be allowed to correspond to one of the plurality of audio channels for the asynchronous events processing according to least recently used processing. 